iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 8
0
自我挑戰組

學習筆記系列 第 13

HSV色彩空間

  • 分享至 

  • xImage
  •  

記錄學習內容。
主要是看網路上的文章和影片,做些紀錄。
內容可能有錯誤。

想來用openCV改變圖片顏色。
先看HSV是什麼

HSL和HSV色彩空間

HSV即色相、飽和度、明度(Hue, Saturation, Value)

色相(H)是色彩的基本屬性,就是平常所說的顏色名稱,如紅色、黃色等。
飽和度(S)是指色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數值。
明度(V),亮度(L),取0-100%、越高越亮。

HSV 線上轉換器

教學來源:
Detecting Colour in an Image using OpenCv and Python

先看到作者的說明:

lower_black = [0,0,0]
upper_black = [250,255,30]

lower_red = [0,150,50]
upper_red = [10,255,255]

lower_green = [45,150,50]
upper_green = [65,255,255]

lower_dark_pink = [160,150,0]
upper_dark_pink = [170,255,255]

lower_pink = [145,150,0]
upper_pink = [155,255,255]

lower_orange = [15,150,0]
upper_orange = [25,255,255]

在作者的範例圖片裡,顏色大概都有符合在lower 和upper之間。
但是拿其他的圖片來側,好像有些沒什麼用。

來看一下這篇stackoverflow

Choosing the correct upper and lower HSV boundaries for color detection withcv::inRange (OpenCV)

OpenCV uses H: 0-179, S: 0-255, V: 0-255

S: 0-255, V: 0-255 的範圍 應該是正確的,OpenCV的S、V就在0-255之間跑 。

這邊有ORANGE範圍

ORANGE_MIN = np.array([5, 50, 50],np.uint8)
ORANGE_MAX = np.array([15, 255, 255],np.uint8)

這是youtube教學的ORANGE範圍:

lower_orange = [15,150,0]
upper_orange = [25,255,255]

stackoverflow回答裡的這張圖:
https://i.stack.imgur.com/gyuw4.png

大概這樣:

10到25: 橘色
30 : 黃色
30-50 :  淡綠色
50-80:  綠色
80-95: Cyan(青色)
115-125 : 深藍 
145-155 粉色
150-180 紅色

黑色就參考教學裡的:

lower_black = [0,0,0]
upper_black = [250,255,30]

看著這個表,然後對照自己要的顏色。
之後再了解cv2.bitwise_and ,轉灰階、轉黑白 。


上一篇
2-3樹
下一篇
java 執行緒 Scatter Gather pattern
系列文
學習筆記46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言